package suncertify.application;

/**
 * Enumerator that defines the application modes. The application's mode is driven by the command line parameter. The
 * application runs in one of the following modes.
 * <ol>
 * <li><b>Server Mode.</b> In this mode the application makes the data available over the network to other applications
 * that run in {@link #NETWORK_CLIENT}. The server processes simultaneous requests from client applications, the server
 * guarantees data synchronization and integrity.</li>
 * <li><b>Network Client Mode</b>. In this mode the application starts as a client that provides the necessary user
 * interface for the end user. In this mode the application connects to another application that runs in the
 * {@link #SERVER} mode.</li>
 * <li><b>Stand alone Client Mode.</b> Same as {@link #NETWORK_CLIENT} except that the application works directly with
 * the data on the local computer without any network connections.</li>
 * </ol>
 * 
 * @see suncertify.application.Application#main(String[])
 * 
 */
public enum ApplicationMode {

    /**
     * Defines the application client stand alone mode.
     */
    STANDALONE_CLIENT,

    /**
     * Defines the application network mode.
     */
    NETWORK_CLIENT,

    /**
     * Defines the application server mode.
     */
    SERVER

}
